package com.thoughtorigin.deeplink {
import com.thoughtorigin.service.Message;

import flash.events.IEventDispatcher;
	
	/**
	 * Standard interface to the deeplinking subsystem
	 *  
	 * @author v-skparr
	 * 
	 */
	public interface DeepLinker extends IEventDispatcher {
		/**
		 * Construct the deeplink based on the command
		 * 
		 * @param command
		 * 
		 */
		function setDeepLink(message: Message): void;
		/**
		 * The current deeplink as a string
		 * 
		 * @return 
		 * 
		 */
		function get deepLinkString(): String;
		/**
		 * Pass a deeplink string into the Deeplinkable and return
		 * a command.
		 * 
		 * @param linkValue
		 * @return 
		 * 
		 */
		function buildMessage(linkValue: String): Message;
		/**
		 * notifies the deeplinker to start listening 
		 */
		function init(): void; 
		
		/**
		 *  
		 * @return the current deeplink value as a queryString 
		 * 
		 */
		function get queryString(): String;
		
	}
}